DNS는 ‘도메인’을 ‘IP주소’로 변환하는 인터넷의 전화번호부 같은 역할을 합니다.
인터넷 초기에 개발된 DNS는 설계당시 보안성을 충분히 고려하지 못해, DNS정보의 위-변조가 가능하다는 문제가 있어왔습니다.
즉, 악의적인 공격에 의해 도메인네임에 대한 IP주소가 악성 사이트 등으로 위/변조 된다면, 이 DNS를 이용하는 인터넷 이용자들은 의도치 않은 IP주소로 연결되어 피해가 발생할 수 있습니다.
"파밍(pharming)"은 ISP의 캐시 DNS서버나 사용자 PC에 특정 도메인네임에 대해 위-변조된 IP주소가 설정되도록 하는 공격방식입니다. 이 공격이 성공하면 사용자는
분명히 올바른 웹 사이트 주소를 입력하였음에도 불구하고(예: 인터넷뱅킹, 쇼핑몰 등), 공격자가 만들어놓은 가짜 사이트로 유도되는 상황이 발생합니다.
가짜 사이트는 원래 사이트와 동일한 모습으로 꾸며져 있기에 사용자는 아무런 의심도 하지 않고 자신의 로그인 정보와 계좌정보 등을 가짜 사이트에 입력해 피해가 발생하게 됩니다.
<인터넷 상의 피싱(phishing) 공격과 파밍(pharming) 공격 비교>
구분 | 피싱(phishing) 공격 | 파밍(pharming) 공격 |
---|---|---|
주된 목적 | - 가짜 사이트로 유도해 개인정보 탈취 | - 가짜 사이트로 유도해 개인정보 탈취 |
공격방식 (인터넷) |
- 실제 도메인네임과 유사한 가짜 도메인네임을 사용 - 진짜처럼 위장된 가짜 사이트로 접속하여 개인정보 입력 유도 |
- 조직, 목적, 분류 등 명칭을 영문약자로 표현한 최상위 도메인 |
공격특징 | - 주로 이메일, SMS 등에 첨부된 링크를 통해 접속을 유도 | - 정상 도메인 입력만으로도 공격이 가능하므로 별다른 유인매체가 불필요 |
위험성 | - 사용자가 세심한 주의를 기울이면 공격탐지, 피해방지가 가능 | - 실제 도메인네임이 그대로 사용되므로 공격탐지 곤란 - 사용자가 많은 캐시 DNS서버에 공격성공 경우, 피해범위 광범위 |
ISP나 기관이 운영하는 캐시 DNS서버를 대상으로 "파밍(pharming)" 공격이 성공하는 경우, 이 캐시 DNS서버를 사용하고 있는 모든 인터넷 사용자에 대해 대규모의 피해가 발생할 수 있습니다.
캐시 DNS서버는 한번 파악한 DNS 정보는 자신의 캐시 메모리에 저장하여 일정시간이 경과하기 전까지 이 정보를 반복 사용하여 사용자 호스트의 DNS 질의에 응답하기 때문입니다.
이와 같이 캐시 DNS서버의 캐시 메모리에 가짜 데이터를 저장하여 사용하도록 유도하는 방식의 파밍(pharming) 공격을 특히 "DNS 캐시 포이즈닝(cache poisoning) 공격"이라고 부릅니다.
<인터넷 상의 피싱(phishing) 공격과 파밍(pharming) 공격 비교>
위 그림은 "DNS 캐시 포이즈닝(cache poisoning) 공격"이 어떤 절차로 이루어지는지를 보여주고 있습니다.
- 거래은행인 www.bank.kr 사이트 접속을 위해 사용자는 'http://www.bank.kr' 주소를 입력
- 호스트는 www.bank.kr의 IP 주소를 파악하기 위해 DNS 질의 개시(1)
- 파밍 공격자는 (7-1)의 정상 DNS응답이 캐시 DNS서버에 도달 전에 자신이 조작한 가짜 DNS 응답메시지를 (7-2)와 같이 대량으로 캐시 DNS서버에 송출
- 캐시 DNS서버는 DNS 응답메시지 수신대기 중 공격자가 송출한 (7-2)의 가짜 DNS 응답 메시지 수신(7-2), 정상 응답이 이루어진 것으로 간주, 캐시에 위-변조된 가짜 데이터 저장
- 캐시 DNS서버는 사용자 호스트에는 이 가짜 IP 주소 데이터로 응답처리(8-2)
- 사용자 호스트는 캐시 DNS서버가 응답한 가짜 IP 주소를 사용하여 웹 사이트 접속(9-2)
오염된 캐시 DNS서버를 사용하는 다른 사용자가 동일한 도메인네임을 질의하면 캐시 DNS서버는 이 캐시 메모리의 가짜 IP 주소로 바로 응답처리 합니다. 이렇게 해서 인터넷 사용자의 피해자는 시간이 갈수록 늘어나게 됩니다.
DNSSEC(DNS Security Extensions)은 이와 같은 "데이터 위-변조 침해공격"에 취약한 DNS의 문제점을 근본적으로 보완 개선하기 위해 국제인터넷표준화기구인 IETF에서 1990년대 후반부터 논의를 시작, 2005년경 완성된 국제표준기술로, 다양한 시험을 거쳐 2010년에는 전세계 최상위 DNS인 ‘루트DNS’에도 적용되면서, 전세계적으로 적용이 확대되고 있습니다.
우리나라는 2011년 “.kr” 국가도메인 영역에 대한 DNSSEC 적용을 시작으로 2012년 9월 .kr, .한국 등 총 31개 국가도메인 영역 전체에 DNSSEC 적용을 완료하여 본격 서비스 제공 중에 있습니다.
DNSSEC은 DNS를 대체하는 것이 아니라, 기존의 DNS에 공개키 암호화 방식의 보안기능을 추가 부여하여 DNS의 보안성을 대폭 강화하는 역할을 합니다.
DNSSEC(DNS Security Extensions)은 DNS 데이터 대상의 "데이터 위조-변조 공격"을 방지하기 위한 인터넷 표준기술입니다.
DNS 데이터의 위조-변조 가능성을 원천적으로 차단하기 위해, DNSSEC은 공개키 암호화방식(Public Key Cryptography)의 전자서명 기술을 DNS 체계에 도입 적용하였습니다. 공개키 암호화방식의 전자서명 메커니즘은 금융권 등에서 널리 사용하는 공인인증서가 사용하고 있는 기술이기도 합니다.
<DNSSEC은 전자데이터로 된 DNS정보에 서명코드를 추가하여 정보를 인증>
물리적 서명 | 전자적 서명 |
---|---|
계약서 + 도장(사인) | 전자 데이터 + 서명코드 |
<도메인과 IP주소에 대한 검증 절차가 수행되므로 해커에 의한 데이터 위·변조시 확인 가능>
공격유형 | 방어여부 | 비고 |
---|---|---|
파밍 (캐시 포이즈닝) | 방어/방지 | - DNS 데이터 위-변조 방식 이용 공격에 효과적 대응 |
피싱 | 해당없음 | - 피싱은 유사 도메인네임 사용하지만, 데이터 위-변조에 해당하지 않음 |
DDoS 공격 | 해당없음 | - DDoS 공격방어 메커니즘이 아님 |
웜바이러스에 의한 호스트 정보변조 | 해당없음 | - DNSSEC은 DNS 질의응답 절차관련 "데이터 위-변조" 방지기술 |
DNSSEC은 인터넷 상의 도메인에 대한 DNS 질의응답 절차 가운데 발생할 수 있는 "DNS 데이터 위-변조" 공격에 대응할 수 있는 보안기술입니다. 권한 DNS서버 간 존 데이터 전송 또는 동적업데이트와 같은 네임서버 관리영역의 동작에 대해서는 별도의 공유키 암호화 방식인 TSIG 기술을 사용하여 보호체계를 적용할 수 있습니다.
<DS RR 내용 예>
구분 | 보호영역 여부 | 비고 |
---|---|---|
권한 DNS서버 ⇔ 캐시 DNS서버 | 보호 | - DNS 질의응답 절차 중 DNS 데이터 위-변조 공격검출 수단제공 |
캐시 DNS서버 ⇔ 사용자 호스트 | 조건부 보호 | - 사용자 호스트에 서명검증 가능한 리졸버(Validator) 사용시 보호 - 그렇지 않은 경우, 보호할 수 없음 |
권한 DNS서버 간 존 전송 | 대상 아님 | - TSIG 적용 인증체계로 보호 |
권한 DNS서버 동적 업데이트 | 대상 아님 | - TSIG 적용 인증체계로 보호 |